package com.biz.primus.model.order.exception;

import com.biz.primus.base.exception.ExceptionType;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 订单异常声明（8600-8699）
 *
 * @author Tiger Feng
 * @date 2017年10月30日
 * @reviewer
 * @see
 */
@Getter
@AllArgsConstructor
public enum OrderException implements ExceptionType {
    ORDER_EXCEPTION(8600, "订单异常"),
    ORDER_CODE_CANNOT_NULL(8601, "订单编号不能为空"),
    ORDER_NOT_EXIST(8601, "订单不存在"),
    PLEASE_PAY(8602, "请先支付"),
    CANNOT_EVALUATION(8603, "不能评价"),
    PAID_AMOUNT_INCONFORMITY(8604, "订单实际支付与订单金额不一致"),
    PRODUCT_INFO_NOT_FOUND(8605, "商品信息没有找到"),
    PRODUCT_OFF_SALE_APP(8606, "商品未在APP上架"),
    PRODUCT_OFF_SALE_WACHAT(8607, "商品未在微商城上架"),
    PRODUCT_QUANTITY_ILLEGAL(8608, "商品数量不合法"),
    COVERTOR_EXCEPTION(8609, "转换异常"),
    PROMOTION_HANDLE_EXCEPTION(8610, "促销计算异常"),
    ORDER_NOT_NULL(8611, "订单不能为空"),
    ORDER_ITEM_NOT_NULL(8612, "订单明细不能为空"),
    ORDER_TYPE_ERROR(8613, "不支持的订单类型"),
    USER_SELECTED_PROMOTION_IS_EXIST(8614, "选择的促销不存在"),
    NOT_SUPPORT_DELIVEY_TYPE(8615, "不支持的配送方式"),
    PRODUCT_STOCK_NOT_ENOUGH(8616, "商品库存不足"),
    ORDER_ID_CANNOT_NULL(8617, "订单ID不能为空"),

    CANNOT_CANCEL_FINISHED_ORDER(8618, "不能取消已完成订单"),
    CANNOT_CANCEL_EX_STOCK_ORDER(8619, "不能取消已出库订单"),
    CANNOT_CANCEL_PAID_ORDER(8620, "不能取消已付款订单，请申请退款"),
    ILLEGAL_OPERATION(8621, "非法操作"),

    NO_SUPPORT_PAYMENT_STATE(8622, "不受支持的支付状态"),
    ORDER_HELPER_CAN_NOT_NULL(8623, "订单助理不能为空"),

    CANNOT_CREATE_RETURN_FOR_WAIT_PAY(8624, "不能对未支付的订单申请售后服务"),
    CANNOT_CREATE_RETURN_FOR_CANCEL(8625, "不能对已取消的订单申请售后服务"),
    CANNOT_CREATE_RETURN_FOR_AFTER_SALE(8626, "订单已处于售后中，无需再次申请"),
    CANNOT_CREATE_RETURN_FOR_FINISHED_AFTER(8627, "不能对售后完成的订单申请售后服务"),
    CANNOT_CREATE_RETURN_FOR_NOT_CONFIRM(8628, "确认收货后才能申请售后服务"),
    STATE_ERROR(8629, "订单状态异常"),
    RETURN_ORDER_IS_NULL(8630, "退货单不存在"),
    RETURN_ORDER_ITEM_IS_NULL(8631, "退货单商品项为空"),
    RETURN_ORDER_SAVE_FAILED(8632, "退货单保存失败"),
    NOT_SUPPORT_RETURN_STATE(8633, "不受支持的退货单状态"),
    RETURN_STATE_ERROR(8634, "退货单状态错误"),

    DELIVERY_STATE_ERROR(8635, "物流状态错误"),
    CANNOT_CANCEL_REFUNDED(8636, "不能取消已退款的退货单"),
    CANCEL_PAY_ON_DELIVERY_FAILED(8637, "取消货到付款订单失败"),
    ;
    private int code;
    private String description;
}